#pragma once


class NOVTABLE main_thread_callback_tag_writer : public main_thread_callback
{
public:
	main_thread_callback_tag_writer(metadb_handle_list_cref p_handles, const pfc::string_list_const & p_strings)
		: m_handles(p_handles)
		, m_strings(p_strings)
	{
	}

	void callback_run();

private:
	metadb_handle_list m_handles;
	pfc::string_list_impl m_strings;
};

class tag_writter : public file_info_filter
{
public:
	tag_writter(metadb_handle_list_cref p_list, const pfc::string_list_const & p_strings, const pfc::list_base_const_t<const metadb_handle *> & p_skipped);
	bool apply_filter(metadb_handle_ptr p_location,t_filestats p_stats,file_info & p_info);

private:
	metadb_handle_list m_handles;
	pfc::list_t<const char *> m_strings;
	pfc::string_list_impl m_data;
};
